<?php
// +----------------------------------------------------------------------
// | 有理想的地方，地狱都是天堂。
// +----------------------------------------------------------------------
// | Copyright @ df81.com 版权所有
// +----------------------------------------------------------------------
// | 作者: 南国老符 邮箱：1062129401@qq.com
// +----------------------------------------------------------------------

namespace app\middleware;

class Auth{
    public function handle($request, \Closure $next) {
    	$app = app('http')->getName();
        $lang = !in_array(input('lang'),config('lang.allow_lang_list')) ? config('lang.default_lang') : input('lang');
        // 获取前端header请求信息并把token信息转化为字符串
        $token = session('token') ? session('token') : (string)request()->header('token');
        // 调用JWTAuth里面的checkAdminToken()方法对token解码
        $result = checkToken($token, $lang);
        // result得到包含有code/data字段的数据集

        // 如果code 不等于9000，验证失败，返回错误提示
        if($result['code'] !== 9000){
            if(request()->isAjax()){
                return json(['code' => $result['code'], 'msg' => $result['data'], 'data' => $token]);
            }else{
                if($app == 'admin'){
                    return redirect(url('/login/index'));
                }else{
                    return redirect(url('user/login'));
                }
            }
        }else{
            // 否则验证通过，把result里面data数据传给$request
            $request->tokenData = $result['data'];
        }
        
        return $next($request);
    }
}